<?php
require_once('lib.php');

// устанавливаем параметры
$dtype = required_param('dtype', PARAM_TEXT);

if ( $dtype == 'files')
{
    $ftypes    = required_param('ftypes', PARAM_TEXT);
    $fsize     = required_param('fsize', PARAM_INT);
} 
if ( $dtype == 'courses' )
{
    $view    = optional_param_array('view_filter', array(), PARAM_TEXT);
    $edit    = optional_param_array('edit_filter', array(), PARAM_TEXT);
    // переводим дату в timestamp   
    $view_filter = false;
    $edit_filter = false;
    if ( !empty($view) )
    {
        $view_filter = date_timestamp_get( date_create($view['year'].'-'.$view['month'].'-'.$view['day']));
    }
    if ( !empty($edit) )
    {
        $edit_filter = date_timestamp_get( date_create($edit['year'].'-'.$edit['month'].'-'.$edit['day']));
    } 
}

admin_externalpage_setup('toolcleanup');
echo $OUTPUT->header();

// установим параметр-подтверждение
$isdelete = optional_param('delete', '', PARAM_TEXT);

if ( $isdelete == 'yes' )
{// удаление подтверждено
    if ($dtype == 'files')
    {
        if( delete_deprecated_files(explode(' ', $ftypes), intval($fsize)) )
        {
            echo "<h4 align='center' style='color:green;'>".get_string('removal_success', 'tool_cleanup')."</h4>";
        }
    }else if ( $dtype == 'users')
    {
        if ( $ulist = optional_param('ulist', false, PARAM_TEXT) )
        {
            $ulist = explode('_', $ulist);
            if( delete_inactive_users($ulist) )
            {
                echo "<h4 align='center' style='color:green;'>".get_string('removal_success', 'tool_cleanup')."</h4>";
            }
        }
    }else if ($dtype == 'courses')
    {
        if ( $clist = optional_param('clist', false, PARAM_TEXT) )
        {
            $clist = explode('_', $clist);
            print_object($clist);
            if( delete_inactive_courses($clist) )
            {
                echo "<h4 align='center' style='color:green;'>".get_string('removal_success', 'tool_cleanup')."</h4>";
            }   
        }    
    }
}else
{
    if ($dtype == 'files')
    {// количество удаляемых файлов
        if ( !$fcount = delete_deprecated_files(explode(' ', $ftypes), intval($fsize), true) )
        {// файлов не найдено - выводим диалог отмены
            $fcount = 0;
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php', array(
                    'dtype' => $dtype));
            $linkno  = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('action_declined', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_files_failed', 'tool_cleanup')."</p>";
            $msg .= "</div>";
        }else 
        {
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/delete.php?delete=yes', array(
                    'dtype' => $dtype, 'ftypes' => $ftypes, 'fsize' => $fsize));
            $linkno  = new moodle_url($CFG->wwwroot.'//admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('confirm_delete', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_files', 'tool_cleanup')."</p>";
            $msg .= "<p>".get_string('extensions_list', 'tool_cleanup').": ".$ftypes."</p>";
            $msg .= "<p>".get_string('min_remove_size', 'tool_cleanup').": ".$fsize."</p>";
            $msg .= "<p>".get_string('files_count_for_removal', 'tool_cleanup').": ".$fcount."</p>";
            $msg .= "</div>";
        }
        echo $OUTPUT->confirm($msg, $linkyes, $linkno);
        
    }else if ($dtype == 'users')
    {   
        $ulist = array();
        // поиск поиск пользователей для удаления
        $ulist = find_inactive_users();
        // строка со списом курсов
        $uliststring = get_inactive_users_string($ulist);
        
        if ( $uliststring AND !empty($ulist) )
        {// выведем диалог для подтверждения
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/delete.php?delete=yes', array(
                    'dtype' => $dtype, 'ulist' => implode('_', $ulist)) );
            $linkno  = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('confirm_delete', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_inactive_users', 'tool_cleanup')."</p>";
            $msg .= "<p>".get_string('user_list_for_removal', 'tool_cleanup').":</p>";
            $msg .= "<ul>".$uliststring."</ul>";
            $msg .= "</div>";
        }else 
        {// в противном случае сообщение об ошибке и возврат на исходную страницу плагина
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php', array(
                    'dtype' => $dtype));
            $linkno  = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('action_declined', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_inactive_users_failed', 'tool_cleanup')."</p>";
            $msg .= "</div>";
        }   
        echo $OUTPUT->confirm($msg, $linkyes, $linkno);
    
    }else if ($dtype == 'courses')
    {
        $clist = array();
        // поиск курсов для удаления
        $clist = find_inactive_courses($edit_filter, $view_filter);
        // строка со списом курсов
        $cliststring = get_inactive_courses_string($clist);
        
        if ( $cliststring AND !empty($clist) )
        {// список и массив не пусты - запрашиваем разрешение на удаление
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/delete.php?delete=yes', array(
                    'dtype' => $dtype, 'clist' => implode('_', $clist)) );
            $linkno  = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('confirm_delete', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_inactive_courses', 'tool_cleanup')."</p>";
            $msg .= "<p>".get_string('course_list_for_removal', 'tool_cleanup').":</p>";
            $msg .= "<ul>".$cliststring."</ul>";
            $msg .= "</div>";
        }else 
        {// в противном случае сообщение об ошибке и возврат на исходную страницу плагина
            $linkyes = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php', array(
                    'dtype' => $dtype));
            $linkno  = new moodle_url($CFG->wwwroot.'/admin/tool/cleanup/index.php');
            $msg  = "<h4>".get_string('action_declined', 'tool_cleanup')."</h4><br/>";
            $msg .= "<div style='font-size: 13px;'>";
            $msg .= "<p>".get_string('action_delete_inactive_courses_failed', 'tool_cleanup')."</p>";
            $msg .= "</div>";
        }
        echo $OUTPUT->confirm($msg, $linkyes, $linkno);
    }
}

echo $OUTPUT->footer();
?>